1. Field of the Invention
This invention pertains to a method and apparatus for inputting commands to a computer using hand gestures. More particularly, the present invention relates to a video based computer interface in which a user's hand gestures and hand motions are used to control virtual objects, to select various commands, and to draw three dimensional curves and surfaces in a virtual computer environment.
2. Description of the Related Art
Various types of computer control and interface devices exist for inputting commands to a computer. Such devices may for example take the form of a computer mouse, joystick or trackball, wherein a user manipulates the interface device to perform a particular operation such as to select a specific entry from a menu of options, perform a "click"or "point" function, etc. A significant problem associated with such interface devices is that a surface area is needed for placement of the device and, in the case of a mouse, to accommodate device movement and manipulation. In addition, such interface devices are generally connected by a cable to a computer CPU with the cable typically draped across the user's desk, causing obstruction of the user's work area. Moreover, because interface device manipulation for performing operations is not consistent with common communication movements, such as the use of a pointing finger hand gesture to select a menu entry, as opposed to maneuvering a mouse until the cursor rests on the desired menu entry, a user must become comfortable and familiar with the operation of the particular interface device before proficiency in use may be attained.
The drawbacks of traditional two-dimensional input devices are particularly exacerbated in computer-based three dimensional object manipulation applications. In such applications, a virtual three dimensional environment is typically displayed to the user with one or more displayed virtual objects positioned within the virtual environment. The user may delete, move and otherwise change the objects in the virtual environment or create new objects. Other functions may be performed in the virtual environment such, for example as, drawing curves. Traditional input devices are extremely difficult to use in such a virtual environment because traditional devices control only two degrees of freedom, and thus a combination of several input devices or a sequence of operations is required to control three or more degrees of freedom as is necessary in three dimensional applications. Such a combination control scheme is cumbersome, unintuitive and requires significant training on the user's part.
It would thus be desirable to provide a computer interface that enables common and intuitive hand gestures and hand motions to be used for interacting with a three dimensional virtual environment. It would further be desirable to provide a system and method for creating, manipulating, changing, and deleting virtual objects in the virtual environment using hand gestures. It would also be desirable to provide a system and method for drawing free-form shapes in the virtual environment using hand gestures.